import Vue from 'vue'
// import App from './App.vue'
// import App from './learn_vuex/index.vue'
import App from './learn_vuerouter/app.vue'
// import router from './router'
// import store from './store'
import store from './learn_vuex/store'
import router from './learn_vuerouter/router/index'

Vue.config.productionTip = false

var level = 5;

router.beforeEach((to,from,next)=>{
  // 在这个位置 我们可以做一些权限的校验
  console.log('to',to)
  document.title = to.meta.title||"珠峰培训"
  if(to.meta.level > level){
    next('/404')
  }else{
    next()
  }
  // console.log('from',from)
  // next() // next 不执行就不会进行页面跳转  next的参数等同于 push的参数
})

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')


// import Vue from 'vue'
// // import App from './mylearn/day3/app'
// // import App from './mylearn/day4/App'
// import App from './mylearn/day4/子父组件的数据交互'
// import '@/mylearn/day4/全局组件/global.js'

// import myPlugin from './mylearn/day4/components/插件/index'
// Vue.use(myPlugin)
// Vue.use(myPlugin)
// Vue.use(myPlugin)

// // Vue.mixin({
// //   // 就是把这些个配置想合并到每一个实例中
// //   data(){
// //     return {
// //       // 若混入的data中的属性跟组件内部的data属性重复了  那么就以组件内部为准
// //       mixinProp1:123,
// //       mixinProp2:234,
// //       name123:"混入的名字"
// //     }
// //   },
// //   // 钩子函数若重复则 都会执行；先执行混入的钩子 后执行组件的钩子
// //   mounted(){
// //     // console.log('这时混入的mounted')
// //     // this.name = 123
// //   },
// //   methods: {
// //     mixinFn(){
// //       console.log('混入的函数')
// //     }
// //   },
// // })


// Vue.component('my-qqq',{
//   render:h=>h('h1',{class:'123',attrs:{id:123}},'qqqq')
// })



// Vue.directive('click',function (el,obj) {
//   console.log(el,obj)
//   el.onclick = function(){
//     console.log(6666)
//   }
// })

// let userLevel = 4;
// Vue.directive('permission',{
//   inserted:function (el,obj) {
//     if(obj.value > userLevel){
//       // 用户的等级不够
//       // el.style.display = 'none'
//       // console.log( el.parentNode)
//       el.parentNode && el.parentNode.removeChild(el);
//     }
//   }
// })
// let P = Vue.extend({

// })

// new P({
//   render:h=>h(App),
//   // render: function(h){
//   //   return h(App)
//   // }
// }).$mount('#app')